<?php
/**
 * Arquivo da Classe VTabela
 * Essa classe � respons�vel por tabular dados em Tabelas de forma simples e direta.
 * Para utilizar essa classe basta enviar um objeto do tipo MSQL.
 * A Tabela ir� pegar os resultados desse MSQL e ir� construir uma tabela bem formada
 * com todos os dados retornados. Lembre-se de utilizar o SELECT do MSQL informando o
 * nome dos campos conforme voc� desejar que sejam exibidos no cabe�alho da tabela.
 * Ex.: SELECT idOrgao, nomeOrgao as `NOME DO ORGAO` from Orgaos;
 * @author Alan Gustavo Santana Ribeiro <alan@prrn.mpf.gov.br> em 18/08/2008
 * @version 1.0
 * @package gc
 */

/**
 * classe VTabela
 * Classe de Vis�o - Tabula dados retornados em uma TSQL
 */


class VTabela {

    protected $cr;
    protected $sql;
    protected $nomeTabela;
    protected $tabela;
    protected $id;
    protected $conexao;
    protected $classe;
    protected $excluir;
    protected $editar;
	/**
	 * Construtor da Classe
	 * @param iConjuntoResultados Um objeto que implementa getResultados
	 */
    public function __construct($conexao, $sql, $nomeTabela=null, $id='VTabela', $excluir=true, $editar=true) {
        $this->editar       = $editar;
        $this->excluir      = $excluir;
        $this->conexao      = $conexao;
        $this->sql          = $sql;
        $this->nomeTabela   = $nomeTabela;
        $this->id			=" id='$id' ";
        if($nomeTabela) {
            $this->classe           = "class='$nomeTabela' ";
        }
        else {
            $this->classe           = null;
        }

        $this->cr 			= new Consulta($this->conexao, $this->sql);
    }

    public function getCabecalho() {
        $campos = $this->cr->getCampos();
        $html = "\t</tr>\n";
        foreach ($campos as $campo) {
            $html .= "\t\t<th>". strtoupper($campo) . "</th>\n";
        }
        $html .= "\t</tr>\n";
        return $html;
    }

    public function getDados() {
        $dados 	= $this->cr->getResultados();
        $ln		= "par";
        foreach ($dados as $linha) {
            $html	.= "\t<tr class='$ln'>\n";
            foreach ($linha as $reg) {
                $html .= "\t\t<td>$reg</td>\n";
            }
            $html .= "\t</tr>\n";
            $ln = $ln=="par"?"impar":"par";
        }
        return $html;

    }
    public function getTabela() {
        $this->tabela="";
        if($this->nomeTabela) {
        //$this->tabela .= "<caption $this->id>$this->nomeTabela</caption>\n";
        }
        $this->tabela .= "<table width=\"100%\" $this->classe >\n";
        $this->tabela .= $this->getCabecalho();
        $this->tabela .= $this->getDados();
        $this->tabela .= "</table>\n";
        return $this->tabela;
    }
    public function getQtdeLinhas() {
        return $this->cr->getQtdeLinhas();
    }
    public function __toString() {
        return $this->getTabela();
    }
}
?>